Power management device with communications capability and method of use

ABSTRACT

A power management device can include a housing, a power input associated with the housing, and a plurality of power outputs associated with the housing. At least certain power outputs can be connectable to one or more electrical loads external to the housing and to the power input. In some embodiments, a communications bus and one or more power control sections can be associated with the housing. In some embodiments, one or more power control sections can communicate with the communications bus and with one or more corresponding power outputs among the plurality of power outputs. In some embodiments, a power information display can communicate with the communications bus. If desired, a power information determining section can be associated with the housing and in communication with the communications bus. The power information determining section may communicate power-related information to the power information display.

RELATED APPLICATIONS AND PATENTS

This application is a continuation of U.S. patent application Ser. No.11/459,011, filed Jul. 20, 2006, and titled NETWORK REMOTE POWERMANAGEMENT OUTLET STRIP, which is a continuation of U.S. patentapplication Ser. No. 10/313,314 filed Dec. 6, 2002, issued as U.S. Pat.No. 7,171,461 on Jan. 30, 2007, and titled NETWORK REMOTE POWERMANAGEMENT OUTLET STRIP, which is a continuation-in-part of U.S. patentapplication Ser. No. 09/930,780 filed Aug. 15, 2001, issued as U.S. Pat.No. 7,043,543 on May 9, 2006, and titled VERTICAL-MOUNT ELECTRICAL POWERDISTRIBUTION PLUGSTRIP, which are incorporated herein by reference. Thisapplication is related to U.S. patent application Ser. No. 09/732,557,filed Dec. 8, 2000, issued as U.S. Pat. No. 7,099,934 on Aug. 29, 2006,and titled NETWORK-CONNECTED POWER MANAGER FOR REBOOTING REMOTECOMPUTER-BASED APPLIANCES, which is a continuation-in-part of U.S.patent application Ser. No. 09/375,471, filed Aug. 16, 1999, issued asU.S. Pat. No. 6,711,613 on Mar. 23, 2004, and titled REMOTE POWERCONTROL SYSTEM THAT VERIFIES WHICH DEVICES IS SHUT-DOWN BEFORE SUCHACTION IS COMMITTED TO, which is a continuation-in-part of U.S. patentapplication Ser. No. 08/685,436, filed on Jul. 23, 1996, issued as U.S.Pat. No. 5,949,974 on Sep. 7, 1999, and titled SYSTEM FOR READING THESTATUS AND CONTROLLING THE POWER SUPPLIES OF APPLIANCES CONNECTED TOCOMPUTER NETWORKS, all of which are hereby incorporated herein byreference.

BACKGROUND

1. Technical Field

The technical field relates generally to power management systems and,more particularly, to electrical power distribution devices and methods.

2. Description of the Prior Art

Network server “farms” and other network router equipment have settledon the use of equipment bays in 19″ standard RETMA racks. Many of theseserver and router farms are located at telephone company (TelCo) centralequipment offices because they need to tie into very high bandwidthtelephone line trunks and backbones. So each TelCo typically rents spaceon their premises to the network providers, and such space is tight andvery expensive.

The typical network router, server, or other appliance comes in arack-mount chassis with a standard width and depth. Such chassis arevertically sized in whole multiples of vertical units (U). Each rentedspace in the TelCo premises has only so much vertical space, and so thebest solution is to make best use of the vertical space by filling itwith the network appliances and other mission-critical equipment.

Two kinds of operating power are supplied to such network appliances,alternating current (AC) from an uninterruptible power supply (UPS) ordirect from a utility, the second kind is direct current (DC) from TelCocentral office battery sets. Prior art devices have been marketed thatcontrol such AC or DC power to these network appliances. For example,Server Technology, Inc. (Reno, Nev.) provides operating-power controlequipment that is specialized for use in such TelCo premises RETMAracks. Some of these power-control devices can cycle the operating poweron and off to individual network appliances.

Such cycling of operating power will force a power-on reset of thenetwork appliance, and is sometimes needed when an appliance hangs orbombs. Since the network appliance is usually located remote from thenetwork administration center, Server Technology has been quitesuccessful in marketing power managers that can remotely report andcontrol network-appliance operating power over the Internet and othercomputer data networks.

Conventional power management equipment has either been mounted in thetops or bottoms of the server farm RETMA racks, and thus has consumedvertical mounting space needed by the network appliances themselves. Sowhat is needed now is an alternate way of supplying AC or DC operatingpower to such network appliances without having to consume much or anyRETMA rack space.

SUMMARY

Briefly, a network remote power management outlet strip embodiment ofthe present invention can comprise a long, thin outlet strip body withseveral independently controllable power outlet sockets distributedalong its length. A power input cord can be provided at one end, andthis can supply AC-operating power to relays associated with each of thepower outlet sockets. The relays can each be addressably controlled by amicroprocessor connected to an internal I2C-bus serial communicationschannel. The power-on status of each relay output to the power outletsockets can be sensed and communicated back on the internal I2C-bus. Adevice-networking communications processor with an embedded operatingsystem may translate messages, status, and controls between externalnetworks, the internal I2C-bus, and other ports.

In alternative embodiments of the present invention, a power managerarchitecture can provide for building-block construction of vertical andhorizontal arrangements of outlet sockets in equipment racks. Theelectronics used in all such variants is essentially the same in eachinstance. Each of a plurality of power input feeds can have a monitorthat can provide current measurements and reports on the internalI2C-bus. Each of the power input feeds could be independently loadedwith a plurality of addressable-controllable outlets. Each outlet canalso be capable of measuring the respective outlet socket load currentand reporting those values on the internal I2C-bus. Separate digitaldisplays can be provided for each monitored and measured load and infeedcurrent. The internal I2C-bus, logic power supply, network interfaces,power control modules and relays, etc., could be distributed amongstseveral enclosures that have simple plug connections between each, theinfeed power source, and the equipment loads in the rack.

An advantage of certain embodiments of the present invention is that anetwork remote power management outlet strip is provided that frees upvertical rackmount space for other equipment.

Another advantage of certain embodiments of the present invention isthat a network remote power management outlet strip is provided forcontrolling the operating power supplied to network appliances overcomputer networks, such as TCP/IP and SNMP.

A further advantage of certain embodiments of the present invention isthat a network remote power management outlet strip is provided thatallows a network console operator to control the electrical power statusof a router or other network device.

A still further advantage of certain embodiments of the presentinvention is that a network remote power management outlet strip isprovided for reducing the need for enterprise network operators todispatch third party maintenance vendors to remote equipment rooms andPOP locations simply to power-cycle failed network appliances.

There are other objects and advantages of various embodiments of thepresent invention. They will no doubt become obvious to those ofordinary skill in the art after having read the following detaileddescription of the preferred embodiments which are illustrated in thevarious drawing figures.

IN THE DRAWINGS

FIG. 1 is a functional block diagram of a network remote powermanagement outlet strip embodiment of the present invention;

FIG. 2A is a front diagram of an implementation of the network remotepower management outlet strip of FIG. 1;

FIG. 2B is an assembly diagram of the network remote power managementoutlet strip of FIG. 2A without the sheetmetal enclosure, and shows theinterwiring amongst the AC-receptacles, the power input plug, and thevarious printed circuit board modules;

FIG. 3 is a non-component side diagram of a printed circuit board (PCB)implementation of an intelligent power module IPT-IPM, similar to thoseof FIGS. 1, 2A, and 2B, and further illustrates an insulating sheet thatis fitted to the back;

FIG. 4 is a component-side diagram of a printed circuit board (PCB)implementation of an intelligent power module IPT-IPM, similar to thoseof FIGS. 1, 2A, 2B, and 3, and further illustrates the bus connectionsof the power outlet receptacles it sockets onto;

FIG. 5 is a functional block diagram of an IPT-NetworkPM moduleembodiment of the present invention;

FIG. 6 is a schematic diagram of a circuit that could be used in animplementation of the IPT-PS of FIGS. 1, 2A, and 2B;

FIG. 7 is a functional block diagram of a network remote powermanagement system embodiment of the present invention;

FIG. 8 is a functional block diagram of an expandable power managementsystem embodiment of the present invention;

FIG. 9 is a functional block diagram of a power distribution unitembodiment of the present invention; and

FIG. 10 is a schematic diagram of one way to implement the IPT-IPM's inany of FIGS. 1-9.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 represents a network remote power management outlet stripembodiment of the present invention, and is referred to herein by thegeneral reference numeral 100. The outlet strip 100 providesindependently managed power to each of sixteen AC-output receptacles101-116. A power supply (IPT-PS) module 118 senses and totalizes thecombined current delivered to all the AC-output receptacles 101-116 fromits AC-power input.

Peripheral integrated circuits (IC's) that have to communicate with eachother and the outside world can use a simple bi-directional 2-wire,serial data (SDA) and serial clock (SCL) bus for inter-IC (I2C) controldeveloped by Philips Semiconductor. The I2C-bus has become a worldwideindustry-standard proprietary control bus.

The IPT-PS module 118 digitally encodes the total AC-current informationonto an internal I2C-bus 119. The IPT-PS module 118 suppliesDC-operating power for the internal I2C-bus 119 which is derived fromthe AC-power input. Each of four intelligent power modules (IPT-IPM)120-123 have four relays (K1-K4) that switch AC-power from the IPT-PSmodule 118 to respective ones of the sixteen AC-output receptacles101-116. Such relays K1-K4 are controlled by a single I2C transceiverdaisy-chain connected to others along the internal I2C-bus 119. Eachsuch I2C transceiver is independently addressable on the I2C-bus 119,and provides a digitally encoded power-on status indication for all fourrelays K1-K4.

An I2C-module (IPT-I2C) 124 receives digital messages on the internalI2C-bus 119 and decodes and displays the totalized combined current,e.g., in AC-amperes, on an LED-readout 126. A user is thus able to seethe effect on the total current caused by plugging or unplugging a loadfrom any or all of the AC-output receptacles 101-116.

The Philips 87LPC762 microcontroller is used as an I2C interface to adual seven-segment display. Port-0 pins select the illuminated segmentsof a seven-segment display. Pin P1.7 selects which of the twoseven-segment displays is being driven, and alternates between the twoseven-segment displays fast enough to avoid flicker. The I2C slaveaddress is configurable. Five commands are supported: STAT (status) RBTN(Read button), RPRB (Read probe), CRST (Clear reset), and WDSP (Writedisplay). A checksum is used on received/sent bytes for data integrityacross the I2C-bus.

The IPT-I2C microcontroller starts up with the I2C interface in idleslave mode. Main( ) waits in a loop until the I2C interface is flaggedas non-idle. After an I2C start occurs, and the rising edge of SCL setsDRDY (and thus ATN), an I2C interrupt occurs. The I2C ISR disables theI2C interrupt and sets a global I2C non-idle flag. The main loop thenproceeds to read in the first byte from the I2C-bus. When seven bits arereceived, the target I2C is known and is compared to the IPT-I2Cmicrocontroller's own module address. If different, the I2C interfaceprocessing stops and waits for another start to begin again. If thesame, the last bit of the first byte is read, which is the R/W bit. If aRead, then the IPT-I2C microcontroller acknowledges the byte andrepeatedly sends a fixed number of response bytes: an address byte, atype byte, one or more data bytes, and a checksum. If a Write, then theIPT-I2C microcontroller acknowledges the byte, and then will read up tofour more bytes: a command byte one or more data bytes, and a checksum.As received, the bytes are acknowledged and compared to expected validcommands and data. As soon as a valid command, any data parameters and avalid checksum are received and acknowledged, the command is acted upon.Without a valid checksum, the command is not acted upon. If anunexpected command or data is received, or more bytes are received thanexpected, then a negative acknowledge occurs after the next byte isreceived, and the I2C interface is stopped, and another start is neededto begin again. Throughout the I2C processing loop, a bus timeout (byTimer 1 interrupt) resets the I2C interface to idle and the I2Cprocessing loop to the appropriate states Timer U also guards the I2Cinterface with a 5-millisecond inter-clock timeout and a 15 second totalI2C timeout. The total I2C timeout is reset when the IPT-I2Cmicrocontroller is addressed on the I2C with its primary address (notthe secondary address).

The I2C IPT-I2C microcontroller commands include the STAT command whichsets the IPT-I2C microcontroller to a read type to STAT. This means thatan I2C Read will send four bytes (address, type data checksum) in whichthe data byte represents the status of the IPT-I2C microcontroller.

The RBTN command sets the IPT-I2C microcontroller read type to RBTN.This means that an I2C Read will send four bytes (address, type, data,checksum) in which the data byte represents the status of the button.

The RPRB command sets the IPT-I2C microcontroller read type to RPRB.This means that an I2C Read will send five bytes (address, type data,data, checksum) in which the data bytes represent the type of 1-wire busprobe and the probe data.

The CRST command clears the Reset Flag (RSTF), Power On Reset Flag(PORF), Brownout Reset Flag (BORF), and WatchDog Reset Flag (WDRF) bitsof the IPT-I2C microcontroller status byte.

The WDSP command sets the values for the dual seven-segment display.

At power up, the dash-dash blinks until a valid WDSP command isreceived. After that, if ten seconds pass without receiving a valid WDSPcommand, the display reverts back to the blinking dash-dash.

A read command is started by the master addressing the slave with theR/W bit set. A read command to the slave IPT-I2C microcontroller resultsin a fixed number of bytes repeatedly being transmitted by the slave(address, type, data1 . . . dataN checksum). The first byte is theaddress of the slave. The second byte indicates the type of data in thefollowing data byte(s). The last byte is a checksum of all the previousbytes.

A write command is started by the master addressing the slave with theR/W bit cleared. This is followed by the master transmitting multiplebytes to the slave, followed by a stop, or restart.

The internal I2C-bus 119 is terminated at a network personality module(IPT-NetworkPM) 128. Such provides an operating system, HTTP-server, andnetwork interface between the internal I2C-bus 119, an external I2C-bus130, an Ethernet 10/100 BaseT 132, a modem 134, and a local operator'sconsole 136. The IPT-NetworkPM 128 preferably uses Internet protocolslike TCP/IP and supports simple network management protocol (SNMP). Inone application, the outlet strip 100 could be used in the remote powermanagement environment described by the present inventors in their U.S.Pat. No. 5,949,974, issued Sep. 7, 1999. Such patent is incorporatedherein by reference.

Network messages, e.g., using TCP/IP and SNMP, are communicated over theEthernet 10/100 BaseT interface 132. Such messages are able (a) toindependently control the power on-off to each of AC-output receptacles101-116, (b) to read the power-on status of each, and (c) to report loadcurrent supplied by each outlet, or simply the total combined currentmeasured passing through IPT-PS 118.

In one embodiment, the power applied to AC-output receptacles 101-116 isnot allowed by the individual IPT-IPM modules 120-123 to besimultaneously applied. Instead, each is allowed to turn on insuccession so any instantaneous load in-rush currents can not combine toexceed the peak capabilities of the AC-power input source.

The total input current display 126 could be used to advantage by atechnician when installing or troubleshooting a RETMA equipment rack bywatching how much current change is observed when each network applianceis plugged in and turned on. Unusually high or low currents can indicateparticular kinds of faults to experienced technicians.

FIGS. 2A and 2B represent a network remote power management outlet stripembodiment of the present invention, which is referred to herein by thegeneral reference numeral 200. These illustrate one way the networkremote power management outlet strip 100 of FIG. 1 could be physicallyimplemented and arranged. The outlet strip 200 provides independentlymanaged power to each of sixteen AC-output receptacles 201-216. Thesehave AC-neutral and AC-ground bussed through two sets of eight, e.g.,with 12-gauge wire. A power supply (IPT-PS) module 218 is daisy-chainedin an internal I2C-bus 219 to a series of four intelligent power modules(IPT-IPM) 220-223. The IPT-PS module 218 has, for example, a Philipsmicrocontroller type 87LPC762 that senses and totalizes the combinedcurrent delivered on the AC-Line leads to all of four intelligent powermodules (IPT-IPM) 220-223.

The Philips 87LPC762/7 microcontroller is programmed as an I2C 8-bit I/OExpander, with an 8-bit 4-channel A/D converter. Eight pins areindividually selectable as either an Input (quasi-bidirectional) orOutput (open drain). Four address lines determine the I2C slave address.Eight commands are supported: STAT (Status), RCFG (Read Config) RPRT(Read Port), RADC (Read ADC), CRST (Clear Reset), WCFG (Write Config),WPRT (Write Port), and ADCE (ADC Enable). A checksum is used onreceived/sent bytes for data integrity across the I2C-bus. Without avalid checksum, a command will not be acted upon.

The microcontroller starts up with the I2C interface in idle slave mode.Main( ) waits in a loop until the I2C interface is flagged as non-idle.After an I2C start occurs, and the rising edge of SCL sets DRDY and thusATN, an I2C interrupt occurs. The I2C ISR disables the I2C interrupt andsets a global I2C non-idle flag. The main loop then proceeds to read inthe first byte from the I2C-bus. When seven bits are received, thetarget I2C is known and is compared to the I/O Expander's own moduleaddress. If different, the I2C interface processing stops and waits foranother start to begin again. If the same the last bit of the first byteis read, which is the R/W bit. If a Read, then the microcontrolleracknowledges the byte, and repeatedly sends a fixed number of responsebytes (an address byte, a type byte one or more data bytes, and achecksum). If a Write, then the microcontroller acknowledges the byteand then will read up to three more bytes (a command byte, a data byte,and a checksum). As received, the bytes are acknowledged and compared toexpected valid commands and data. As soon as a valid command, any dataparameters and a valid checksum are received and acknowledged, thecommand is acted upon. If an unexpected command or data is received, ormore bytes are received than expected, then a negative acknowledgeoccurs after the next byte is received, and the I2C interface is stoppedand another start is needed to begin again. Throughout the I2Cprocessing loop, a bus timeout by Timer 1 interrupt resets the I2Cinterface to idle and the I2C processing loop to the appropriate state.Timer 0 also guards the I2C interface with a 5-millisecond inter-clocktimeout and a 15-second total I2C timeout. The total I2C timeout isreset when the I/O Expander is addressed on the I2C with its primaryaddress, not the secondary address.

The I2C microcontroller commands include the STAT command, which setsthe I/O Expander read type to STAT. An I2C Read will send four bytes:address, type, data, checksum. The data byte represents the status ofthe I/O Expander.

The RCFG command sets the I/O Expander read type to RCFG. This meansthat an I2C Read will send four bytes: address, type, data, checksum.The data byte represents the I/O configuration of the eight I/O pins.

The RADC command sets the microcontroller read type to RADC. This meansthat an I2C Read will send eight bytes (address, type, ADCE status, ADCOdata ADCI data, ADC2 data, ADC3 data, checksum) in which the data bytesrepresent the value of the four ADC channels. For ADC channels that aredisabled, a value of 0xFF is returned. For enabled ADC channels, thevalue represents the average of the last eight averages of 64 A/Dconversions during the last four AC cycles. All four channels areconverted once during each 1.042 ms, about 260 us apart. After four AC(60 Hz) cycles, each channel has be converted 64 times. For each channelthese 64 conversions are averaged and stored. The most-recent eightstored averages are then again averaged, making the reported value thetruncated average over 64×8=512 AC cycles, which spans just over a halfsecond.

The CRST command clears the ReSeT Flag (RSTF) Power On Reset Flag(PORE), BrownOut Reset Flag (BORF), and IiiatchDog Reset Flag (WDRF)bits of the I/O Expander status byte.

The WCFG command sets the microcontroller I/O configuration of the eightI/O pins. The WCFG command also sets the read type to RCFG.

The WPRT command sets the state of the eight I/O pins that areconfigured as outputs. The WPRT command also sets the read type to RPRT.

The ADCE command enables or disables any or all four ADC channels. TheADCE command also sets the read type to RADC.

A read command is started by the master addressing the slave with theR/W bit set. A read command to the slave IPT-I2C microcontroller resultsin a fixed number of bytes repeatedly being transmitted by the slave(address, type, data1 . . . dataN checksum). The first byte is theaddress of the slave. The second byte indicates the type of data in thedata bytes that follow. The last byte is a checksum of all the previousdata bytes.

A write command is started by the master addressing the slave with theR/W bit cleared. This is followed by the master transmitting multiplebytes to the slave, followed by a stop or restart.

The IPT-PS module 218 digitally encodes the total AC-input currentinformation onto the internal I2C-bus 219. The IPT-PS module 218 derivesDC-operating power from the AC-power input for modules on the internalI2C-bus 219. Each of the IPT-IPM modules 220-223 has four relays (K1-K4)that switch the AC-Line from the IPT-PS module 218 to respective ones ofthe AC-Line connections on each of the sixteen AC-output receptacles201-216. Such relays K1-K4 are controlled by a single I2C transceiverlocated on each IPT-IPM 220-223. For example, such I2C transceiver couldbe implemented with a Philips microcontroller type 87LPC762.

Each such I2C transceiver is independently addressable on the I2C-bus219, and provides a digitally encoded power-on status indication for allfour relays K1-K4. An I2C-module (IPT-I2C) 224 receives digital messageson the internal I2C-bus 219 and decodes and displays the totalizedcombined current, e.g., in AC-amperes, on an LED-readout 226. Theinternal I2C-bus 219 terminates at a IPT-NetworkPM 228.

Preferably, IPT-NetworkPM 228 includes an operating system, an HTMLwebpage, and a network interface. Such can connect a remote user orcommand console with the internal I2C-bus 219, an external I2C-bus thatinterconnects with other outlet strips through a RJ-11 socket 230, anEthernet 10/100 BaseT RJ-45 type socket 232, etc. The IPT-NetworkPM 228preferably uses Internet protocols like TCP/IP and supports simplenetwork management protocol (SNMP).

The modular construction of outlet strip 200 allows a family ofpersonality modules to be substituted for IPT-NetworkPM 228. Each suchwould be able to communicate with and control the IPT-IPM's 220-223 viathe internal I2C-bus 219.

The manufacturability and marketability of IPT-IPM 220-223 could begreatly enhanced by making the hardware and software implementation ofeach the same as the others. When a system that includes these isoperating, it preferably sorts out for itself how many IPM's areconnected in a group and how to organize their mutual handling ofcontrol and status data in and out.

FIG. 3 illustrates a printed circuit board (PCB) implementation of anintelligent power module IPT-IPM 300, similar to those of FIGS. 1, 2A,and 2B. On the component side of the PCB, the IPT-IPM 300 has atwo-position connector 302 for AC-Neutral, and on the non-component sidescrew connector 304 for the AC-Line. A PCB trace 306 distributes AC-Linepower input to a series of four power control relays, as shown in FIG.4. An insulator sheet 310 screws down over the IPT-IPM 300 and protectsit from short circuits with loose wires and the sheetmetal outlet striphousing.

For example, insulator sheet 310 can be made of MYLAR plastic film andmay not necessarily have a set of notches 312 and 314 that provide forconnector tabs 302 and 304. Connector tabs 302 and 304 can alternativelybe replaced with a two-position connector with screw fasteners.

FIG. 4 illustrates the component side of a PCB implementation of anIPT-IPM module 400, e.g., the opposite side view of the IPT-IPM module300 in FIG. 3. The IPT-IPM module 400 comprises a pair of I2C daisychain bus connectors 402 and 404, a PCB trace 406 distributes AC-Linepower input from AC-Line screw connector 304 connect at a via 408 to aseries of four power control relays 410-413. A microcontroller 414processes the I2C communications on the internal I2C-bus, e.g., I2C-bus119 in FIGS. 1 and 219 in FIGS. 2A and 2B.

FIG. 5 shows the basic construction of an IPT-NetworkPM module 500, andis similar to the IPT-NetworkPM module 128 of FIGS. 1 and 228 of FIGS.2A and 2B. A NetSilicon (Waltham, Mass.) type NET+50 32-bit Ethernetsystem-on-chip for device networking is preferably used to implement acommunications processor 502. A flash memory 504 provides programstorage and a RAM memory 506 provides buffer and scratchpad storage forthe communications processor operations. A local I2C-bus is implementedin part with a pair of 2N7002 transistors, for example. It connects intothe I2C daisy chain with a J1-connector (CON4) 510. An external I2C-busis implemented in part with a pair of 2N7002 transistors, for example.It connects into an external I2C system with an RJ12-type J7-connector510. Such external I2C system can expand to one additional outlet stripthat shares a single IPT-NetworkPM module 500 and a single networkconnection.

An Ethernet 10/100 BaseT interface with the media access controller(MAC) internal to the communications processor 502 is provided by aphysical layer (PHY) device 516. An Intel type LXT971A fast Ethernet PHYtransceiver, for example, could be used together with an RJ45 connector518. A pair of RS-232 serial interfaces are implemented in part with anSP3243E transceiver 520, an RJ45H connector 522, another SP3243Etransceiver 524, and an IDC10 connector 526.

The flash memory 504 is preferably programmed with an operating systemand HTML-browser function that allow web-page type access and controlover the Ethernet channel. A complete OS kernel, NET+Management simplenetwork management protocol (SNMP) MIBII and proxy agent, NET+Protocolsincluding TCP/IP, NET+Web HTTP server, and XML microparser, arecommercially available from NetSilicon for the NET+50 32-bit Ethernetsystem-on-chip.

FIG. 6 represents a circuit 600 that could be used in an implementationof the IPT-PS 118 of FIG. 1 and IPT-PS 218 of FIGS. 2A and 2B. AnAC-Line input 602 from the AC-power source is passed through the primarywinding of an isolation transformer 604. A set of four AC-Line outputs606 are then connected to the four IPT-IPM's, e.g., 120-123 in FIGS. 1and 220-223 in FIGS. 2A and 2B. The voltage drop across the primarywinding of isolation transformer 604 is relatively small andinsignificant, even at full load. So the line voltage seen at theAC-Line outputs 606 is essentially the full input line voltage.

A voltage is induced into a lightly loaded secondary winding that isproportional to the total current being drawn by all the AC-loads, e.g.,AC-receptacles 101-116 in FIGS. 1 and 201-216 in FIGS. 2A and 2B. Anop-amp 608 is configured as a precision rectifier with an output diode610 and provides a DC-voltage proportional to the total current beingdrawn by all the AC-loads and passing through the primary of transformer604. An op-amp 612 amplifies this DC-voltage for the correct scale rangefor an analog-to-digital converter input (A0) of a microcontroller (uC)616. A Philips Semiconductor type P87LPC767 microcontroller could beused for uC 616. Such includes a built-in four-channel 8-bit multiplexedA/D converter and an I2C communication port. When a READ ADC command isreceived on the I2C communication port, the A0 input is read in anddigitally converted into an 8-bit report value which is sent, forexample, to LED display 126 in FIG. 1.

A prototype of the devices described in connection with FIGS. 1-6 wasconstructed. The prototype was a combination of new hardware andsoftware providing for a 4-outlet, 8-outlet, or 16-outlet vertical-strippower manager that could be accessed out-of-band on a single RJ45 serialport, or in-band over a 10/100 Base-T Ethernet connection by Telnet oran HTML browser. An RJ12 port was connected to a second, nearlyidentical vertical-strip power manager that was almost entirely a slaveto the first, e.g., it could only be controlled by/via the first/mastervertical power manager.

Vertical power manager hardware and software was used for the IPT-PSpower supply board, the IPT-IPM quad-outlet boards, and IPT-I2Cperipheral/display board. For the master vertical power manager, newpersonality module hardware and software was developed. This personalitymodule, trademarked SENTRY3, was based upon the NetSilicon NetARM+20Mmicroprocessor, and provided all of the control and user interface (UI).On the slave vertical power manager, a preexisting IPT-Slave personalitymodule was modified slightly to bridge the external and internalI2C-buses. This allowed the master to control the slave vertical powermanager exactly the same as the master vertical power manager, with nosoftware or microprocessor needed on the slave. New software could beincluded to run in a microprocessor on the slave vertical power managerpersonality module to act as a backup master for load-display andpower-up sequencing only.

A new SENTRY3 personality module was developed to support an HTMLinterface for Ethernet, and a command-line interface for Telnet andserial. Multiple users were supported, up to 128. One administrativeuser (ADMN) existed by default, and will default to having access to allports. Outlet grouping was supported, with up to 64 groups of outlets.

There were two I2C-buses that can support up to sixteen quad-IPM(IPT-IPM) boards, across four power inputs, with at most four quad-IPM'sper input, and with each input having its own load measurement anddisplay. Each power input was required to have the same number ofquad-IPM's that it powered. There was one I2C peripheral/display(IPT-I2C) board for each power input. Each bus had only one smart powersupply (IPT-PS) board at I2C address 0x5E. Each bus had at least one I2Cperipheral/display (IPT-I2C) board at I2C address 0x50, and at least onequad-IPM (IPT-IPM) board at I2C address 0x60 (or 0x40).

Determining what was present on an I2C-bus, and at what address, wasdone by reading the 8-bit I/O port of the power supply. The eight bitswere configured as,

Bit 0 => Undefined Bit 1 => Display orientation (1 = Upside-Up, 0 =Upside-Down) Bit 2 => Number of quad-IPM's per power input Bit 3 =>Number of quad-IPM's per power input Bit four => Overload point (1 =30.5A [244ADC], 0 = 16.5A [132ADC]) Bit 5 => Undefined Bit 6 => Numberof power inputs Bit 7 => Number of power inputsBits 2 & 3 together determine how many quad-IPM's there were per powerinput. Bits 6 & 7 together determine how many power input feeds therewere.

The I2C address of the quad-IPM's were determined by the version of LPCcode on the IPT-PS board, as determined by a read of the STATus byte ofthe of the IPT-PS.

Version 3+ => quad-IPM's start @ 0x60 and were 0x60, 0x62, 0x64, 0x66,0x68, 0x6A, 0x6C, 0x6E, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7A, 0x7C, 0x7E.Version 2− => quad-IPM's start @ 0x40 and were 0x40, 0x42, 0x44, 0x46,0x48, 0x4A, 0x4C, 0x4E, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5A, 0x5C, 0x5E.

Up to four IPT-I2C peripheral/display boards were supported at I2Caddresses: 0x50, 0x52, 0x54, and 0x56.

There was a direct mapping relationship between power inputs, IPT-I2Cperipheral/display boards I2C addresses, and the IPT-IPM boards I2Caddresses:

Power IPT-I2C IPT-IPM v3+ addresses Input address (subtract 0x20 forv2−) A 0x50 0x60, 0x62, 0x64, 0x66 B 0x52 0x68, 0x6A, 0x6C, 0x6E C 0x540x70, 0x72, 0x74, 0x76 D 0x56 0x78, 0x7A, 0x7C, 0x7E

Considering that each input power feed can support up to four quad-IPM's(sixteen ports), and that each bus can have four input feeds, and thatthere were two I2C-buses, an addressing scheme for a port must includethree fields (a) Bus ID, (b) Input Feed ID, and (c) Relay ID

The Bus ID could be regarded as vertical-strip power manager/enclosureID, since one I2C-bus were for the internal/local I2C vertical powermanager components and the other I2C-bus were for the external/remotevertical power manager. Other implementations could use a CAN bus inplace of the external I2C-bus. Each enclosure had an address on the bus,e.g., an Enclosure ID. Thus, the three address fields needed were (a)Enclosure ID, (b) Input Feed ID, and (c) Relay ID.

The Enclosure ID was represented by a letter, starting with “A”, with acurrently undefined maximum ultimately limited to “Z”. Only “A” and “B”existed for the prototype. The Input Feed ID was represented by aletter, with a range of “A” to “D”. The Relay ID was represented by adecimal number, with a range of “1” to “16”.

An absolute identifier was needed for the user to enter commands. Acombination of Enclosure ID, Input Feed ID, and Relay ID must beexpressed in the absolute ID. This were done with a period followed bytwo alphabet characters and then one or two numeric characters, e.g.,“.{enclosure_id}[input_feed_id]{#}[#]”.

The first alphabet character represented the Enclosure ID (“A” to “Z”).The second alphabet character represented the Input Feed ID (“A” to“D”). The third and fourth number characters represented the Relay ID(“1” to “16”), e.g., “.{A

Z}[A

D]{1

16}”. The input feed ID was optional. If not specified, “A” was assumed.With an absolute ID scheme, a period, letter, and number must always beentered, making it very similar to our current scheme, but allowing forfuture multiple input feeds. For displaying IDs, the optional input feedID should only be shown when the port was in an enclosure with 2 or moreinput feeds. A vertical power manager ID could be specified with just aperiod and letter. An input feed ID could be specified with a period andtwo letters.

Existing outlets were determined by reading the power supply I/O port ofthe master and slave vertical power manager. One administrative userexists by default, and has access to all outlets and groups. Thisadministrator (ADMN) could be removed, but only if one or more otherusers with administrative privileges exist. Additional users could becreated or removed. Administrative privileges could be given to orremoved from added users.

The administrative privilege allows access to all currently-detectedoutlets and groups without those outlets or groups actually being in theuser's outlet or group tables. Lists of outlets or groups foradministrative users should include all currently-detected outlets andgroups. This allowed administrative privileges to be given or taken awaywithout affecting the users outlet and group tables.

Groups of outlets could be created or removed. Outlets could be added orremoved from groups. Outlets, or groups of outlets, could be added orremoved from users. An outlet may belong to multiple groups. Alluser-defined outlet and groups names were unique. This were enforced atthe time names were defined by the user. All user-defined names alsocannot be the same as any KEYWORDS. For example, they cannot be “GROUP”,“OUTLET”, or “ALL”. This were enforced at the time names were defined bythe user. Usernames were uppercased when stored and displayed, and werecompared case-insensitive. Passwords were stored and comparedcase-sensitive. Separate tables existed for each user's outlet accessand group access.

When an ADMN user specifies “ALL” it means all currently detectedoutlets. For non-ADMN users, the “ALL” parameter refers to all of theoutlets in the current user's outlet access table. There was no “all” torefer to all groups.

All commands that specify outlet IDs need to be bounds-checked againstthe currently detected number of enclosures, number of input feeds onthe target enclosure, and the number of relays on the target enclosure.Power actions could be applied to only one target at a time. The targetcould be an outlet or a group of outlet.

A wakeup state determined the default power-up state of each outlet.Power-on sequencing occurred independently on each vertical powermanager and power feed, with each outlet being initialized to its wakeupstate two seconds after the previous outlet, e.g., starting withoutlet-1. Outlet names could be up to 24-characters. These were storedand displayed case-sensitive, but were compared case-insensitive ascommand parameters. Group names could be up to 24-characters. These werestored and displayed case-sensitive, but were compared case-insensitiveas command parameters. A 24-character vertical power manager/enclosurename could be user-defined. This were stored and displayedcase-sensitive, but was compared case-insensitive as a commandparameter. A 32-character location name could be user-defined. This werestored and displayed case-sensitive. Usernames could be 1-16 characters,and were case-insensitive. Passwords also could be 1-16 characters, andwere case-sensitive. Variable length command parameters werelength-checked for validity. An error was displayed if too short or toolong, as opposed to and automatic behavior, such as truncating a stringthat was too long.

Prototype I2C Address Map I2C Address I2C Address Device (binary) (hex)I2C-01 0101-000x 0x50 I2C-02 0101-001x 0x52 I2C-03 0101-010x 0x54 I2C-040101-011x 0x56 IPT-PS 0101-111x 0x5E IPM-01 0110-000x 0x60 IPM-020110-001x 0x62 IPM-03 0110-010x 0x64 IPM-04 0110-011x 0x66 IPM-050110-100x 0x68 IPM-06 0110-101x 0x6A IPM-07 0110-110x 0x6C IPM-080110-111x 0x6E IPM-09 0111-000x 0x70 IPM-10 0111-001x 0x72 IPM-110111-010x 0x74 IPM-12 0111-011x 0x76 IPM-13 0111-100x 0x78 IPM-140111-101x 0x7A IPM-15 0111-110x 0x7C IPM-16 0111-111x 0x7E

The prototype required several major software components to beconstructed for use with the NetSilicon NET+50 device. The configurationand operational control blocks used in the prototype were described inthe following tables. All of the control blocks were readable by allcomponents in the system. The configuration control blocks were writtenby the user interface tasks. When the configuration control blocks weremodified, the modifications were mirrored in EEPROM where copies ofthese control blocks were stored. The operational control blocks werealso accessible to all components for read access, but each operationalcontrol block has an “owner” that performs all writes to the operationalcontrol blocks. If a non “owner” wishes to change an operational controlblock, a signal or message was used to let the “owner” know the controlblock should be updated.

The major design tasks for the prototype included designing anddocumenting the external I2C protocol that was used to communicate to“chained” SENTRY boxes, and the new command line interface commands tosupport features that were previously available only via the SENTRY SHOWScreen interface. The HTML code was developed for the prototype, as wellas the “slave” SENTRY code to run in a personality module of a “chained”SENTRY. Further discrete design efforts were required to code the systeminitialization, the local I2C task, the external I2C task, the serialport control task, the telnet control task, the user interface task, thepower coordination task, the extern user interface (button/LED) controltask, and the WEB control task.

The major software components developed for the prototype are listed inthe following Tables.

SenINIT—SENTRY initialization procedure. This software was the firstSENTRY software that executes. It performs hardware, software (buildsthe Configuration and Operational global control blocks), and OSinitialization. This code spawns the SENTRY operational tasks thatprovide the system services.

TskSER—One instance of this task was spawned for each active serialport. In the initial product there was one instance of this task. Thistask spawns TskUSR when a logon was detected. This task owns the serialport operational array control block in global memory. This controlblock was updated to reflect the status of the serial port. Once aTskUSR was spawned, this task performs serial port monitoring functionsand if modem status signal indicate a lost connection, this task willsignal TskUSR (via an OS interface) of this event.

TskTELNET—One instance of this task was spawned to listen for telnetconnections. When a connection was detected, this task spawns TskUSR forthe connection.

TskFTP—One instance of this task was spawned to listen for FTPconnections. The function of this task was to provide field softwareupdates for the system. The mechanism used was determined based on thedeveloper kit capabilities.

TskWEB—This task was to provide WEB access via the system provided WEBserver. The mechanism and number of instances of this task wasdetermined based on the developer kit capabilities.

TskI2C—There were two versions of this task; the local version thatcontrols internal I2C connections and the global version that controlsexternal I2C connections. For the first implementation there were twoinstances of this task, one to control the single I2C internalconnection and one to control the single I2C external connection. Thesetasks implement the protocol for communicating control requests from thesystem to the I2C connected devices. Control requests were received viasystem signals or messages (depending on the OS capabilities) from thepower control coordinating task (TskPCntl) for power control requestsand from the external user interface task (TskEUI) for LED controlrequests. This task communicates power control status updates receivedfrom the IPM's to TskPCntl and external button status updates to TskEUIusing system signals or messages as necessary.

TskPCntl—This was the power control coordinating task. There was oneinstance of this task. This task receives power control request from theuser interface tasks (TskUSR and TskWEB) via system provided signals ormessages and passes them to the correct I2C task (internal or external)using signals or messages. This task receives status updates from theI2C tasks via signals or messages. TskPCntl “owns” the IPMO and PCROarrays and it updates the status fields in entries in these arrays asnecessary.

TskEUI—This was the external user interface task that handles the pushbutton functions and the LED display functions for the system. This taskcommunicates with the local TskI2C via signals or messages to update theLED. TskI2C sends signals or messages to this task when the state of theexternal push button changes.

TskUSR—This command line user interface task was spawned by TskSER andTskTELNET when a user connection was detected. This task verifies theuser login and then implements the command line interface. This routinecommunicates power control commands via signals or messages to TskPCntl.This routine “owns” the active command line user array. Because therewere multiple instances of this task, locks were used to serializeaccess to the active user array.

TskSYS—This was the general system task. Specific functions for thistask were defined as development progressed.

The control blocks were globally addressable by all software in thesystem. Such data structures exist in RAM and were mirrored in EEPROMmemory. They were constructed during system initialization using the nonvolatile versions in EEPROM memory. If the EEPROM memory was empty, thecontrol blocks were built using defaults and the EEPROM memory wasinitialized using defaults as well. All software has read access to allof the data structures. The data in these control blocks wasconfiguration data and was only changed as a result of configurationupdates. The data was mostly static and was written duringinitialization and when configuration changes occur during an authorizeduser session. All write access to this data consists of a two stepprocess where the Global RAM copy of the data was updated followed by anupdate of the EEPROM copy of the data. There were seven globalconfiguration control blocks as illustrated below. The following Tablesdescribe each control block structure used in the prototype.

SENTRY Configuration Table (SCT)—This control block contains globalconfiguration information. There was a single instance of this controlblock.

Username/Password Array (UNP)—This was an array of control blocks witheach entry representing a user defined to the system. System locks wereused to serialize access to this array when adding/deleting users. Therewas room for sixty-four entries in this array.

Intelligent Power Module (IPM) Array—This was an array of control blockswith each entry representing an IPM defined to the system. There wasroom for 32 entries in this array.

Power Control Relay (PCR) Array—This was an array of control blocks witheach entry representing an PCR defined to the system. There was room for128 entries in this array.

Group Power Control Relay (GRP) Array—This was an array of controlblocks with each entry representing an Group of PCRs. There was room for64 entries in this array.

Serial Port (SER) Array—This was an array of control blocks with eachentry representing a serial port that can be used to access the system.There was room for two entries in this array.

I2C Array—This was an array of control blocks with each entryrepresenting an I2C connection. There was room for two entries in thisarray.

The Global RAM Operational Control Block Structures were globallyaddressable by all software in the system. These data structures existonly in RAM and are lost during a system restart. They were constructedduring system initialization using current operational values. Allsoftware has read access to all of the data structures. The data inthese control blocks was operational data and was changed to reflect thecurrent operational status of devices in the system. Each of thesecontrol blocks has an “owner” task that performs updates by writing tothe control block. There were six global operational control blocks asillustrated below. Complete descriptions of each control block structurefollows.

Intelligent Power Module (IPMO) Array—This was an array of controlblocks with each entry representing an IPM defined to the system. Therewas room for 32 entries in this array. The entries in this arraycorrespond directly to the IPM configuration control block. Thesecontrol blocks contain dynamic information that changes regularly. Therelay coordination task (TskPCntl) “owns” this array.

Power Control Relay (PCRO) Array—This was an array of control blockswith each entry representing an PCR defined to the system. There wasroom for 128 entries in this array. The entries in this array corresponddirectly to the PCR configuration control block. These control blockscontain dynamic information that changes regularly. The relaycoordination task (TskPCntl) “owns” this array.

I2C (I2CO) Array—This was an array of control blocks with each entryrepresenting an I2C connection. There was room for 2 entries in thisarray. The entries in this array correspond directly to the I2Cconfiguration control block. These control blocks contain dynamicinformation that changes regularly. The I2C task (TskI2C) “owns” thisarray.

Serial Port (SERO) Array—This was an array of control blocks with eachentry representing a serial port that can be used by the system. Therewas room for two entries in this array. The entries in this arraycorrespond directly to the serial port configuration control block.These control blocks contain dynamic information that changes regularly.The serial port task (TskSER) “owns” this array.

Active Command Line User (UCLI) Array—This was an array of controlblocks with each entry representing a current active command line userof the system. The SCT was room for 5 entries in this array. Thesecontrol blocks contain dynamic information that changes regularly. Theuser interface task (TskUSR) “owns” this array. There were multipleinstances of TskUSR so locks were used for this array.

Active HTTP Interface User (UHTP) Array—This was an array of controlblocks with each entry representing a WEB user. There was room for 5entries in this array. These control blocks contain dynamic informationthat changes regularly. The WEB task (TskWEB) “owns” this array.

In FIG. 7, a network remote power management system 700 includes a hostsystem 702 connected over a network 704 to a remote system 706. A powermanager 708, e.g., like outlet strips 100 and 200 of FIGS. 1, 2A, and2B, is used to monitor and control the operating power supplied to aplurality of computer-based appliances 714 associated with a networkinterface controller (NIC) 716.

Such computer-based appliances 714 are subject to software freezing orcrashing, and as such can become unresponsive and effectively dead. Itis also some mission-critical assignment that suffers during such downtime. It is therefore the role and purpose of the network remote powermanagement system 700 to monitor the power and environmental operatingconditions in which the computer-based appliance 714 operates, and toafford management personnel the ability to turn the computer-basedappliance 714 on and off from the host system 702. Such power cyclingallows a power-on rebooting of software in the computer-based appliance714 to be forced without actually having to visit the site. Theoperating conditions and environment are preferably reported to the host702 on request and when alarms occur.

The power manager 708 further includes a network interface controller(NIC) 718, and this may be connected to a security device 720. If thenetwork 704 is the Internet, or otherwise insecure, it is important toprovide protection of a protocol stack 722 from accidental and/ormalicious attacks that could disrupt the operation or control of thecomputer-based appliance 714. At a minimum, the security device 720 canbe a user password mechanism. Better than that, it could include adiscrete network firewall and data encryption.

The protocol stack 722 interfaces to a remote power manager 724, and itconverts software commands communicated in the form of TCP/IPdatapackets 726 into signals the remote power manager can use. Forexample, messages can be sent from the host 702 that will cause theremote power manager 724 to operate the relay-switch 712. In reverse,voltage, current, and temperature readings collected by the sensor 710are collected by the remote power manager 724 and encoded by theprotocol stack 722 into appropriate datapackets 726. Locally, a keyboard728 can be used to select a variety of readouts on a display 730, andalso to control the relay-switch 712.

The display 730 and keyboard 728 can be connected as a terminal througha serial connection to the power manager 724. Such serial connection canhave a set of intervening modems that allow the terminal to be remotelylocated. The display 730 and keyboard 728 can also be virtual, in thesense that they are both emulated by a Telnet connection over thenetwork 704.

The host 702 typically comprises a network interface controller (NIC)732 connected to a computer platform and its operating system 734. Suchoperating system can include Microsoft WINDOWS-NT, or any other similarcommercial product. Such preferably supports or includes a Telnetapplication 736, a network browser 738, and/or an SNMP application 740with an appropriate MIB 742. A terminal emulation program or userterminal 744 is provided so a user can manage the system 700 from asingle console.

If the computer-based appliance 714 is a conventional piece of networkequipment, e.g., as supplied by Cisco Systems (San Jose, Calif.), therewill usually be a great deal of pre-existing SNMP management softwarealready installed, e.g., in host 702 and especially in the form of SNMP740. In such case it is usually preferable to communicate with theprotocol stack 722 using SNMP protocols and procedures. Alternatively,the Telnet application 736 can be used to control the remote site 706.

An ordinary browser application 738 can be implemented with MSNExplorer, Microsoft Internet Explorer, or Netscape NAVIGATOR orCOMMUNICATOR. The protocol stack 722 preferably includes the ability tosend hypertext transfer protocol (HTTP) messages to the host 702 indatapackets 726. In essence, the protocol stack 722 would include anembedded website that exists at the IP-address of the remote site 706.An exemplary embodiment of a similar technology is represented by theMASTERSWITCH-PLUS marketed by American Power Conversion (West Kingston,R.I.).

Many commercial network devices provide a contact or logic-level inputport that can be usurped for the “tickle” signal. Cisco Systems routers,for example, provide an input that can be supported in software to issuethe necessary message and identifier to the system administrator. Adevice interrupt has been described here because it demands immediatesystem attention, but a polled input port could also be used.

Network information is generally exchanged with protocol data unit (PDU)messages, which are objects that contain variables and have both titlesand values. SNMP uses five types of PDU's to monitor a network. Two dealwith reading terminal data, two deal with setting terminal data, andone, the trap, is used for monitoring network events such as terminalstart-ups or shut-downs. When a user wants to see if a terminal isattached to the network, for example, SNMP is used to send out a readPDU to that terminal. If the terminal is attached, a user receives backa PDU with a value “yes, the terminal is attached”. If the terminal wasshut off, a user would receive a packet informing them of the shutdownwith a trap PDU.

In alternative embodiments of the present invention, it may beadvantageous to include the power manager and intelligent power modulefunctions internally as intrinsic components of an uninterruptible powersupply (UPS). In applications where it is too late to incorporate suchfunctionally, external plug-in assemblies are preferred such thatoff-the-shelf UPS systems can be used.

Once a user has installed and configured the power manager 708, a serialcommunications connection is established. For example, with a terminalor terminal emulation program. Commercial embodiments of the presentinvention that have been constructed use a variety of communicationsaccess methods.

For modem access, the communication software is launched that supportsANSI or VT100 terminal emulation to dial the phone number of theexternal modem attached to the power manager. When the modems connect, auser should see a “CONNECT” message. A user then presses the enter keyto send a carriage return.

For direct RS-232C access, a user preferably starts any serialcommunication software that supports ANSI or VT100 terminal emulation.The program configures a serial port to one of the supported data rates(38400, 79200, 9600, 4800, 7400, 7200, and 300 BPS), along with noparity, eight data bits, and one stop bit, and must assert its DeviceReady signal (DTR or DSR). A user then presses the enter key to send acarriage return.

For Ethernet network connections, the user typically connects to a powermanager 708 through a modem or console serial port, a TELNET program, orTCP/IP interface. The power manager 708 preferably automatically detectsthe data rate of the carriage return and sends a username login promptback to a user, starting a session. After the carriage return, a userwill receive a banner that consists of the word “power manager” followedby the current power manager version string, and a blank line and then a“Username:” prompt.

A user logged in with an administrative username can control power andmake configuration changes. A user logged in with a general username cancontrol power on/off cycling. Users logged in administrative usernamescan control power to all intelligent power modules, a user logged inwith a general username may be restricted to controlling power to aspecific intelligent power module or set of intelligent power modules,as configured by the administrator.

A parent case, U.S. patent application Ser. No. 09/732,557, filed72/08/2000, titled NETWORK-CONNECTED POWER MANAGER FOR REBOOTING REMOTECOMPUTER-BASED APPLIANCES, includes many details on the connection andcommand structure used for configuration management of power managerembodiments of the present invention. Such patent application isincorporated herein by reference and the reader will find many usefulimplementation details there. Such then need not be repeated here.

Referring again to FIG. 7, a user at the user terminal 744 is able tosend a command to the power manager 724 to have the power managerconfiguration file uploaded. The power manager 724 concentrates theconfiguration data it is currently operating with into a file. The userat user terminal 744 is also able to send a command to the power manager724 to have it accept a power manager configuration file download. Thedownload file then follows. Once downloaded, the power manager 724begins operating with that configuration if there were no transfer orformat errors detected. These commands to upload and downloadconfiguration files are preferably implemented as an extension to analready existing repertoire of commands, and behind some preexistingpassword protection mechanism. HyperTerminal, and other terminalemulation programs allow users to send and receive files.

In a minimal implementation, the power manager configuration files arenot directly editable because they are in a concentrated format. Itwould, however be possible to implement specialized disassemblers,editors, and assemblers to manipulate these files off-line.

FIG. 8 is a diagram of an expandable power management system 800 thatcould be implemented in the style of the outlet strip 100 (FIG. 1). Inone commercial embodiment of the present invention, a first powercontroller board 802 is daisy-chain connected through a serial cable 803to a second power controller board 804. In turn, the second powercontroller board 804 is connected through a serial cable 805 to a thirdpower controller board 806. All three power controller boards cancommunicate with a user terminal 808 connected by a cable 809, but suchcommunication must pass through the top power controller board 802first.

Alternatively, the user terminal could be replaced by an IP-addressinterface that provided a web presence and interactive webpages. If thenconnected to the Internet, ordinary browsers could be used to upload anddownload user configurations.

Each power controller board is preferably identical in its hardware andsoftware construction, and yet the one placed at the top of the serialdaisy-chain is able to detect that situation and take on a unique roleas gateway. Each power controller board is similar to power controller208 (FIG. 2). Each power controller board communicates with the othersto coordinate actions. Each power controller board independently storesuser configuration data for each of its power control ports. A typicalimplementation had four relay-operated power control ports. Part of theuser configuration can include a user-assigned name for each controlport.

A resynchronization program is executed in each microprocessor of eachpower controller board 802, 804, and 806, that detects where in theorder of the daisy-chain that the particular power controller board islocated. The appropriate main program control loop is selected from acollection of firmware programs that are copied to every powercontroller board. In such way, power controller boards may be freelyadded, replaced, or removed, and the resulting group will resynchronizeitself with whatever is present.

The top power controller board 802 uniquely handles interactive userlog-in, user-name tables, its private port names, and transferacknowledgements from the other power controller boards. All the otherpower controller boards concern themselves only with their privateresources, e.g., port names.

During a user configuration file upload, power controller board 802begins a complete message for all the power controller boards in thestring with the user-table. Such is followed by the first outletsconfiguration block from power controller board 802, and the otheroutlet configuration blocks from power controller boards 804 and 806.The power controller board 802 tells each when to chime in. Each blockcarries a checksum so transmission errors could be detected. Each blockbegins with a header that identifies the source or destination, then thedata, then the checksum.

During a user configuration file download, power controller board 802receives a command from a user that says a configuration file is next.The user-name table and the serial-name table is received by powercontroller board 802 along with its private outlets configuration blockand checksum. The next section is steered to power controller board 804and it receives its outlets configuration block and checksum. If good,an acknowledgement is sent to the top power controller board 802. Thepower controller boards further down the string do the same until thewhole download has been received. If all power controller boardsreturned an acknowledgement, the power controller board 802 acknowledgesthe whole download. Operation then commences with the configuration.Otherwise a fault is generated and the old configuration is retained.

In general, embodiments of the present invention provide power-onsequencing of its complement of power-outlet sockets so that powerloading is brought on gradually and not all at once. For example, powercomes up on the power outlet sockets 2-4 seconds apart. An exaggeratedpower-up in-rush could otherwise trip alarms and circuit breakers.Embodiments display or otherwise report the total current beingdelivered to all loads, and some embodiments monitor individual poweroutlet sockets. Further embodiments of the present invention provideindividual remote power control of independent power outlet sockets,e.g., for network operations center reboot of a crashed network serverin the field.

The power-on sequencing of the power-outlet sockets preferably allowsusers to design the embodiments to be loaded at 80% of full capacity,versus 60% of full capacity for prior art units with no sequencing. Insome situations, the number of power drops required in a Data Center canthus be reduced with substantial savings in monthly costs.

FIG. 9 represents a power distribution unit (PDU) embodiment of thepresent invention, and is referred to herein by the general referencenumeral 900. The PDU 900 allows a personality module 902 to be installedfor various kinds of control input/output communication. For an Ethernetinterface, a NetSilicon type NET+50 system-on-a-chip is preferred,otherwise a Philips Semiconductor type P89C644 microcontroller could beused in personality module 902.

The PDU 900 further comprises an I2C peripheral board 904, and a set offour IPM's 906, 908, 910, and 912. Such provide sixteen power outletsaltogether. A power supply 914 provides +5-volt logic operating power,and a microcontroller with a serial connection to an inter-IC control(I2C) bus 917. Such I2C-bus 917 preferably conforms to industrystandards published by Philips Semiconductor (The Netherlands). See,www.semiconductor.philips.com. Philips Semiconductor typemicrocontrollers are preferably used throughout PDU 900 because I2C-businterfaces are included.

A SENTRY-slave personality module 916 could be substituted forpersonality module 902 and typically includes a Server Technology, Inc.(Reno, Nev.) SENTRY-type interface and functionality through a standardRJ12 jack. See, e.g., website at www.servertech.com. A slave personalitymodule 918 could be substituted for personality module 902 and providesa daisy-chain I2C interface and functionality through a standard RJ12jack. A terminal-server personality module 920 could be substituted forpersonality module 902 and provides a display terminal interface, e.g.,via I2C through a standard RJ12 jack, or RS-232 serial on a DINconnector. A network personality module 922 preferably provides ahypertext transfer protocol (http) browser interface, e.g., via 100Base-T network interface and a CAT-5 connector. The on-boardmicrocontroller provides all these basic personalities through changesin its programming, e.g., stored in EEPROM or Flash memory devices. Allof PDU 900 is preferably fully integrated, e.g., within powerdistribution outlet strip 100, in FIG. 1.

FIG. 10 illustrates an intelligent power module (IPT-IPM) 1000 andrepresents one way to implement IPT-IPM's 120-123 of FIG. 1; IPT-IPM's220-223 of FIGS. 2A and 2B; IPT-IPM 300 of FIG. 3; IPT-IPM 400 of FIG.4; power controller boards 802, 804, and 806 of FIG. 8; and, 4-portIPM's 906, 908, 910, and 912 of FIG. 9. The IPT-IPM 1000 comprises anI2C microcontroller 1002 connected to communicate on a daisy-chain I2Cserial bus with in and out connectors 1004 and 1006. An AC-Line input1008, e.g., from IPT-PS 118 in FIG. 1, is independently switched undermicrocontroller command to AC-Line output-1 1010, AC-Line output-2 1011,AC-Line output-3 1012, and AC-Line output-4 1013. A set of four relays(K1-K4) 1014-1017 provide normally open (NO) contacts 1018-1021.DC-power to operate the relays is respectively provided by relay powersupplies 1022-1025. Optical-isolators 1026-1029 allow logic leveloutputs from the microcontroller 1002 to operate the relays in responseto I2C commands received from the I2C-bus.

Similarly, optical-isolators 1030-1033 allow the presence of AC-Linevoltages at AC-Line output-1 1010, AC-Line output-2 1011, AC-Lineoutput-3 1012, and AC-Line output-4 1013, to be sensed by logic leveldigital inputs to microcontroller 1002. These are read as status andencoded onto the I2C-bus in response to read commands. A local user isalso provided with a LED indication 1034-1037 of the AC-Line outputs. Aset of load sensors 1038-1041 sense any current flowing through theprimaries of respective isolation transformers 1042-1045. A logic levelLS1-LS4 is respectively provided to microcontroller 1002 to indicate ifcurrent is flowing to the load.

In general, remote power management embodiments of the present inventionare configurable and scaleable. Such provides for maximum fabricatorflexibility in quickly configuring modular components to meet specificcustomer requests without overly burdening the manufacturing process.The following list of various customer requirements can all be met withminimal hardware, and no software changes: Vertical or Horizontalenclosure mounting; Variable controllable outlet configurations (4, 8,12, 16 outlets/enclosure); Variable number of power input feedconfigurations to support redundant power to critical network equipment(up to 4 input feeds); Option of displaying one or more input loadcurrents on a dual 7-segment LED display(s); Ability to reorient theenclosure without having to invert the 7-segment LED display(s);Measuring per outlet load current for individual appliance loadreporting; and a Variety of user interfaces that can be substituted atfinal product configuration time.

A modular component concept allows for communications and automateddetection of any included modular components over a commoncommunications channel. So a multi-drop, addressable, and extensible busarchitecture is used. The Inter-IC (I2C) bus developed by Philipssemiconductor is preferred. Each modular component contains amicroprocessor capable of interpreting and responding to commands overI2C-bus. An application layer enhancement on top of the standardI2C-protocol allows for data integrity checking. A checksum is appendedto all commands and responses. Such checksum is validated beforecommands are acted upon, and data responses are acknowledged. Eachmodule on the I2C power control bus has either a hard-coded orconfigurable address to enable multiple components to communicate overthe same two wires that comprise the bus. Configuration jumpers on thepower supply module are used to select operational items, e.g., #Powerinput feeds, #four port Intelligent Power Modules (IPM) attached to eachinput feed, Input feed overload current threshold, and Displayinversion.

The main components used in most instances are the power supply board(IPT-PS) that supplies DC voltage on the interconnection bus, andmonitors and reports input feed load and enclosure configurationinformation; the intelligent power module IPM (IPT-IPM) which controlsthe source of power to each outlet based on I2C commands from the mastercontroller personality module (PM), and that reports whether the outletis in the requested state and the outlet load current back to the mastercontroller; the display board (IPT-I2C) used to display load current assupplied by the master controller and to monitor user-requested resets,and that can communicate with sensors attached to its DallasSemiconductor-type “1-wire” bus to the master controller; and, thepersonality modules that act as an I2C-bus master, e.g., IPT-Serial PM,IPT-Slave PM, and IPT-Network PM.

Such personality module can initialize, issue commands to, and receiveresponses from the various components on the bus. It also is responsiblefor executing user power control and configuration requests, by issuingcommands on the bus to the various modules that perform these functions.These personality modules support several user interfaces and can beswapped to provide this functionality. The IPT-Serial PM is used forserial only communications. The IPT-Slave PM is used to connect to anearlier model controllers, and allows for a variety of user interfaces,e.g., Telnet, Http, SNMP, serial, modem. The IPT-Network PM has much ofthe same functionality as a previous model controller, but has all thatfunctionality contained on the personality module itself and requires noexternal enclosure.

By combining and configuring these components, a variety of powercontrol products can be constructed in many different enclosure forms,each with a variety of power input feed and outlet arrangements.

Lower-cost power control products can be linked to a more expensivemaster controller using an IPT-Network PM to configure a large-scalepower control network that needs only a single IP-address and userinterface. Such would require a high level, high bandwidth, multi-dropcommunications protocol such as industry-standard Controller AreaNetwork (CAN). The CAN bus supports 1-Mbit/sec data transfers over adistance of 40 meters. This would enable serial sessions from a user toserial ports on the device being controlled to be virtualized and thusavoid needing costly analog switching circuitry and control logic.

Although the present invention has been described in terms of thepresent embodiment, it is to be understood that the disclosure is not tobe interpreted as limiting. Various alterations and modifications willno doubt become apparent to those skilled in the art after having readthe above disclosure. Accordingly, it is intended that the appendedclaims be interpreted as covering all alterations and modifications asfall within the true spirit and scope of the invention.

1. A power management device comprising in combination: A. a powermanagement device housing; B. a plurality of power inputs disposed inthe power management device housing; C. a first plurality of poweroutputs disposed in the power management device housing, each among thefirst plurality of power outputs being connectable to one or moreelectrical loads external to the power management device housing andconnected to a first power input among the plurality of power inputs; D.a second plurality of power outputs disposed in the power managementdevice housing, each among the second plurality of power outputs beingconnectable to one or more electrical loads external to the powermanagement device housing and connected to a second power input amongthe plurality of power inputs; E. a communications bus associated withthe power management device housing; F. a plurality of power controlsections associated with the power management device housing, each amongthe plurality of power control sections being in communication with thecommunications bus and thereby in power controlling communication withone or more corresponding power outputs among the first or secondplurality of power outputs; G. a communications system associated withthe power management device housing, being in communication with saidcommunications bus, and having a communications processor system incommunication with (i) said communications bus; (ii) at least one amongsaid plurality of power control sections through the communications bus;and (iii) a communications port connectable to an externalcommunications link external to the power management device housing; H.a power information display associated with the power management devicehousing in communication with the communications bus; and I. a powerinformation determining section associated with the power managementdevice housing in communication with the communications bus, whereby thepower information determining section may communicate power-relatedinformation to the power information display.
 2. The power managementdevice of claim 1 wherein said communications processor system comprisesan Internet Protocol network communications processor in selectivelyremovable communication with the external communications link throughthe communications port.
 3. The power management device of claim 1wherein each among the plurality of power control sections includes apower-on status determination circuit, whereby the power-on statusdetermination circuit may report power-on status of said correspondingpower output through said communications bus.
 4. The power managementdevice of claim 1 wherein each among the plurality of power controlsections includes a power control relay in power-controllingcommunication with at least one corresponding power output.
 5. The powermanagement device of claim 2 wherein each among the plurality of powercontrol sections includes a power control relay in power controllingcommunication with at least one corresponding power output.
 6. The powermanagement device of claim 3 wherein each among the plurality of powercontrol sections includes a power control relay in power-controllingcommunication with at least one corresponding power output.
 7. The powermanagement device of claim 1 wherein said communications sectionincludes a slave application in communication with a slavecommunications port mounted in the power management device housing,whereby the communications system may serve as a slave to a mastercommunications section in a separate power management device.
 8. A powermanagement device of the type useable to remotely control, or assessinformation relating to, power provided to external electrical loadsfrom a manager location distal from the external electrical loads, thepower management device comprising in combination: A. a power managementdevice housing; B. a power input disposed in the power management devicehousing; C. a plurality of power outputs disposed in the powermanagement device housing, each said power output being connectable toan electrical load external to the power management device housing; D.at least one intelligent power section disposed in the power managementdevice housing in power controlling communication with at least onecorresponding power output among said plurality of power outputs; E. anetwork communications module (i) having memory and atransfer-control-protocol/Internet Protocol network interfaceapplication system residing in the memory and providing a web pageinterface, and (ii) being associated with the power management devicehousing in communication with the intelligent power sections and incommunication with at least a first external network communicationsport; and F. a current display mounted in association with the powermanagement device housing in current-determining communication with atleast one among the plurality of power outputs; whereby an externalpower manager and the network communications module may exchange,through the first external network communications port and an externalnetwork link, information relating to the intelligent power sections inthe power management device housing.
 9. The power management device ofclaim 8 wherein the network communications module also includes a secondcommunications port communicatingly connectable to at least anadditional power management device.
 10. The power management device ofclaim 9 wherein the first communications port provides a firstcommunications service format and the second communications portprovides a second communications service format.
 11. The powermanagement device of claim 8 wherein the network communications modulealternately comprises a master application or a slave application,whereby the master application may communicate with a slave networkcommunications module in an additional power management device.
 12. Thepower management device of claim 9 wherein the network communicationsmodule alternately comprises a master application or a slaveapplication, whereby the master application may communicate with a slavenetwork communications module in an additional power management device.13. The power management device of claim 10 wherein the networkcommunications module is removably mounted in the power managementdevice housing and alternately comprises a master application or a slaveapplication, whereby the master application may communicate with a slavenetwork communications module in an additional power management device.14. The power management device of claim 8 wherein the current displaymounted in association with the power management device housing is incurrent-determining communication with the plurality of power outputs.15. The power management device of claim 9 wherein the current displaymounted in association with the power management device housing is incurrent-determining communication with the plurality of power outputs.16. The power management device of claim 11 wherein the current displaymounted in association with the power management device housing is incurrent-determining communication with the plurality of power outputs.17. The power management device of claim 8 wherein the networkcommunications module alternately comprises a master application or aplural slave application, whereby the master application may communicatewith a plurality of slave network communications modules in anadditional power management device.
 18. The power management device ofclaim 9 wherein the network communications module alternately comprisesa master application or a plural slave application, whereby the masterapplication may communicate with a plurality of slave networkcommunications modules in an additional power management device.
 19. Thepower management device of claim 10 wherein the network communicationsmodule is removably mounted in the power management device housing andalternately comprises a master application or a plural slaveapplication, whereby the master application may communicate with aplurality of slave network communications modules in an additional powermanagement device.
 20. The power management device of claim 14 whereinthe network communications module may alternately comprise a masterapplication or a plural slave application, whereby the masterapplication may communicate with a plurality of slave networkcommunications modules in an additional power management device.
 21. Thepower management device of claim 15 wherein the network communicationsmodule is removably mounted in the power management device housing andmay alternately comprise a master application or a plural slaveapplication, whereby the master application may communicate with aplurality of slave network communications modules in an additional powermanagement device.